home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / dsp / dspgroup / macros.arc / MOVE.ASM < prev    next >
Encoding:
Assembly Source File  |  1983-11-17  |  4.8 KB  |  61 lines

  1.  
  2. *                                                                               
  3. *MOVE L(CONST) WORDS FROM A(RAM VAR)                                            
  4. *TO B(RAM VAR)                                                                  
  5. *                                                                               
  6. MOVE   $MACRO   A,B,L                                                           
  7.        $IF  (L.V<2)&(B.L#=0)                                                    
  8.        MOV  :A:,:B:      MOVE SINGLE                                            
  9.        $ENDIF                                                                   
  10.        $IF  (L.V=2)&(B.L#=0)                                                    
  11.        MOVX :A:,:B:      MOVE DOUBLE                                            
  12.        $ENDIF                                                                   
  13.        $IF  (L.V>2)++(B.L=0)                                                    
  14.        $VAR ST                                                                  
  15.        $ASG '*' TO ST.S                                                         
  16.        $IF  (A.L#=0)&(B.L#=0)                                                   
  17.        $IF  (A.SV#=ST.SV)&(B.SV#=ST.SV)                                         
  18.        CALL MOVAB$       MOVE                                                   
  19.        REF  MOVAB$                                                              
  20.        DATA :A:          FROM :A:                                               
  21.        DATA :B:          TO :B:                                                 
  22.        DATA :L.V:        FOR :L.V: WORDS                                        
  23.        $ENDIF                                                                   
  24.        $ENDIF                                                                   
  25.        $IF  (A.SV#=ST.SV)&(A.L#=0)                                              
  26.        $IF  (B.L=0)++(B.SV=ST.SV)                                               
  27.        $IF  B.L=0                                                               
  28.        ACTAR AR1         AC TO AR1                                              
  29.        $ENDIF                                                                   
  30.        CALL MOVA$        MOVE                                                   
  31.        REF  MOVA$                                                               
  32.        DATA :A:          FROM :A:                                               
  33.        DATA :L.V:        FOR :L.V: WORDS                                        
  34.        $ENDIF                                                                   
  35.        $ENDIF                                                                   
  36.        $IF  (B.SV#=ST.SV)&(B.L#=0)                                              
  37.        $IF  (A.L=0)++(A.SV=ST.SV)                                               
  38.        $IF  A.L=0                                                               
  39.        ACTAR AR0         MOVE AC TO AR0                                         
  40.        $ENDIF                                                                   
  41.        CALL MOVB$        MOVE                                                   
  42.        REF  MOVB$                                                               
  43.        DATA :B:          TO :B:                                                 
  44.        DATA :L.V:        FOR :L.V: WORDS                                        
  45.        $ENDIF                                                                   
  46.        $ENDIF                                                                   
  47.        $IF  (A.L=0)++(A.SV=ST.SV)                                               
  48.        $IF  (B.L=0)++(B.SV=ST.SV)                                               
  49.        $IF  A.L=0                                                               
  50.        ACTAR AR0         AC TO AR0                                              
  51.        $ENDIF                                                                   
  52.        $IF  B.L=0                                                               
  53.        ACTAR AR1         AC TO AR1                                              
  54.        $ENDIF                                                                   
  55.        CALL MOV$$        MOVE                                                   
  56.        REF  MOV$$                                                               
  57.        DATA :L.V:        FOR :L.V: WORDS                                        
  58.        $ENDIF                                                                   
  59.        $ENDIF                                                                   
  60.        $ENDIF                                                                   
  61.        $END